package innovacion.dao;

import innovacion.excepcion.DAOExcepcion;
import innovacion.modelo.Usuario_Rol;
import innovacion.util.ConexionDB;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;

public class Usuario_Rol_DAO extends BaseDAO{
	public Collection<Usuario_Rol> listar_usuario_rol()
			throws DAOExcepcion {
		String query = "SELECT u.CoUsuario,u.noapellidopaterno,u.noapellidomaterno, u.NoUsuario,r.NoRol FROM usuario u inner join rol r on u.ROL_CoRol = r.CoRol order by u.cousuario";
		Collection<Usuario_Rol> lista = new ArrayList<Usuario_Rol>();
		Connection con = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		try {
			con = ConexionDB.obtenerConexion();
			stmt = con.prepareStatement(query);
			//stmt.setString(1,estado);
			//stmt.setString(2, "%" + titulo + "%");
			rs = stmt.executeQuery();
			
			while (rs.next()) {				
				Usuario_Rol vo = new Usuario_Rol();
				vo.setUSUARIO_CoUsuario(rs.getInt("u.cousuario"));
				vo.setUSUARIO_NoApellidoPaterno(rs.getString("u.noapellidopaterno"));				
				vo.setUSUARIO_NoApellidoMaterno(rs.getString("u.noapellidomaterno"));
				vo.setROL_NoRol(rs.getNString("r.NoRol"));
				lista.add(vo);
			}
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		} finally {
			this.cerrarResultSet(rs);
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
		}
		System.out.println(lista.size());
		return lista;
	}
}
